package com.ruoyi.tsjData.service.impl;

import java.util.List;
import java.util.concurrent.Future;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.tsjData.domain.plat.DataTshjHj;
import com.ruoyi.tsjData.mapper.DataTshjHjMapper;
import com.ruoyi.tsjData.service.IDataTshjHjService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;


/**
 * 提升机-环境测试Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-10-25
 */
@Service
public class DataTshjHjServiceImpl implements IDataTshjHjService
{
    @Autowired(required = false)
    private DataTshjHjMapper dataTshjHjMapper;

    /**
     * 查询提升机-环境测试
     * 
     * @param hjId 提升机-环境测试主键
     * @return 提升机-环境测试
     */
    @Override
    public DataTshjHj selectDataTshjHjByHjId(Long hjId)
    {
        return dataTshjHjMapper.selectDataTshjHjByHjId(hjId);
    }

    /**
     * 查询环境数据
     * @param dataTaskId
     * @return
     */
    @Async("threadPoolKy")
    @Override
    public Future<List<DataTshjHj>> selectDataHjById(Long dataTaskId) {
        List<DataTshjHj> dataTshjHjList = selectDataTshjHjByDataTaskId(dataTaskId);

        return new AsyncResult<>(dataTshjHjList);
    }

    /**
     * 查询提升机-环境测试
     *
     * @param dataTaskId 提升机-环境测试任务id
     * @return 提升机-环境测试
     */
    @Override
    public List<DataTshjHj> selectDataTshjHjByDataTaskId(Long dataTaskId) {
        return dataTshjHjMapper.selectDataTshjHjByDataTaskId(dataTaskId);
    }

    /**
     * 查询提升机-环境测试列表
     * 
     * @param dataTshjHj 提升机-环境测试
     * @return 提升机-环境测试
     */
    @Override
    public List<DataTshjHj> selectDataTshjHjList(DataTshjHj dataTshjHj)
    {
        return dataTshjHjMapper.selectDataTshjHjList(dataTshjHj);
    }

    /**
     * 新增提升机-环境测试
     * 
     * @param dataTshjHj 提升机-环境测试
     * @return 结果
     */
    @Override
    public int insertDataTshjHj(DataTshjHj dataTshjHj)
    {
        dataTshjHj.setCreateTime(DateUtils.getNowDate());
        return dataTshjHjMapper.insertDataTshjHj(dataTshjHj);
    }

    /**
     * 环境测试
     * @param dataTshjHjs 提升机-环境测试
     * @return
     */
    @Override
    public int batchDataTshjHj(List<DataTshjHj> dataTshjHjs) {
        return dataTshjHjMapper.batchDataTshjHj(dataTshjHjs);
    }

    /**
     * 修改提升机-环境测试
     * 
     * @param dataTshjHj 提升机-环境测试
     * @return 结果
     */
    @Override
    public int updateDataTshjHj(DataTshjHj dataTshjHj)
    {
        dataTshjHj.setUpdateTime(DateUtils.getNowDate());
        return dataTshjHjMapper.updateDataTshjHj(dataTshjHj);
    }

    /**
     * 批量修改提升机-环境测试
     * @param dataTshjHjs 提升机-环境测试
     * @return
     */
    @Override
    public int updateBatchDataTshjHj(List<DataTshjHj> dataTshjHjs) {
        return dataTshjHjMapper.batchDataTshjHj(dataTshjHjs);
    }

    /**
     * 修改环境测试任务状态
     * @param dataTaskIds 环境测试任务id
     * @return
     */
    @Override
    public int updateDataTshjHjByDataTaskIds(Long[] dataTaskIds) {
        return dataTshjHjMapper.updateDataTshjHjByDataTaskIds(dataTaskIds);
    }

    /**
     * 变更环境测试状态为2
     */
    @Override
    public int updateDataTshjHjByHjId(Long dataTaskId, Long hjId) {
        return dataTshjHjMapper.updateDataTshjHjByHjId(dataTaskId, hjId);
    }

    /**
     * 批量删除提升机-环境测试
     * 
     * @param hjIds 需要删除的提升机-环境测试主键
     * @return 结果
     */
    @Override
    public int deleteDataTshjHjByHjIds(Long[] hjIds)
    {
        return dataTshjHjMapper.deleteDataTshjHjByHjIds(hjIds);
    }

    /**
     * 删除提升机-环境测试信息
     * 
     * @param hjId 提升机-环境测试主键
     * @return 结果
     */
    @Override
    public int deleteDataTshjHjByHjId(Long hjId)
    {
        return dataTshjHjMapper.deleteDataTshjHjByHjId(hjId);
    }
}
